home *** CD-ROM | disk | FTP | other *** search
/ Pascal Super Library / Pascal Super Library (CW International)(1997).bin / LIBRARY / PBLIB1 / DOC / DEVTOOLS.TXT < prev    next >
Text File  |  1994-04-30  |  6KB  |  134 lines

  1. Development Tools
  2.  
  3.      The function of a development system is to facilitate the
  4. writeing and testing of code.  The Turbo IDE works pretty well
  5. as far as the Edit/Compile/Test portion of the cycle goes, but
  6. doesn't facilitate multiple program development, code libraries
  7. documentation or distribution.  Until recently, I have been
  8. adding utility programs one by one as the need arises.  Along the
  9. way, I have been building up a library of routines and objects which
  10. make each additional program easier to assemble.
  11.  
  12.      The following are stand-alone utilities, each performing a
  13. useful function.  Because they share code libraries and structures,
  14. their operation is similar.  See the section on Utility Program Structure
  15. for details.
  16.  
  17.      A design target of mine is that any program should be 80%-90%
  18. library routines.  To the maximum extent possible, re-useable code
  19. is made a little more general than necessary and moved into the library.
  20. This makes the utilities themselves pretty simple to examine.
  21.  
  22.      My primary goals are:
  23.  
  24.      1. Everything is absolutely in the PUBLIC DOMAIN.
  25.      2. Everything can be re-compiled and changed to taste.
  26.      3. Most sensible options are supported via CFG files or command
  27.           line parameters.
  28.  
  29. The programs:
  30.  
  31.  1. TLISTER - Optimized for the listing of PASCAL source files.  If
  32.       file extension not specified, assumes '.pas'.  It can handle '*.pas'
  33.       for all files on a directory.  Page header contains
  34.       the file mod date, name, and page number.  The command line
  35.       option INTERFACE=YES will list out only the interface section of
  36.       a unit.
  37.  
  38.  2. TPRINT - Old-Fashioned text file formatter.  Printing is controlled
  39.       by visible "\" commands in the text.  Commands for setting headers
  40.       and footers, centering lines, word-wrap, indent and others are
  41.       available.  Produces decent looking documentation.
  42.  
  43.  3. TED - My own personalized text editor built around Borland's Editor
  44.       Toolbox - BINED.  Built strictly to my own tastes, but it is
  45.       small and can be hooked into programs.  The EXE is freely useable
  46.       by anyone, from Borland's license, but modifying the source
  47.       requires purchasing the Toolbox.   {Oops, BINED isn't working
  48.       with TP7, with each generation of compiler, I wind up having
  49.       to go back to BORLAND}
  50.  
  51.  4. USES - Scans unit and program files for the USES statement and
  52.       parses it.  USES * goes through all '.pas' files on the current
  53.       directory and prints their uses statement.  USES miscstuf would
  54.       scan all '.pas' files and list only those which used 'miscstuf'.
  55.  
  56.  5. DUMP - simple hex dumping utility, but with enough controls over
  57.       start and end points, amount listed and format to make it a
  58.       useful tool.
  59.  
  60.  6. DIRS - provides a summary of the disk at the directory level.  Scans
  61.       all paths and accumulates statistics for each directory just
  62.       off the root.  Lets you see quickly which obsolete directories
  63.       are costing the most disk space.
  64.  
  65.  7. BIGFILES - scans entire disk, and lists files which exceed the
  66.       specified file size.
  67.  
  68.  8. FIND - scans entire disk for files matching template.  Bigger andd
  69.       probably slower than many others, but it is free and I can control it.
  70.  
  71.  9. ZIP & PUT - My personal backup system.  See later discussion.
  72.  
  73. 10. DB - Ongoing xBase utilities and routines.  I like ALPHA 4 and R&R Report
  74.        Writer and others, but I can't give away or sell them.  Current
  75.        status is:
  76.           DB DDL    - shows record structure
  77.           DB DUMP   - Record lister with considerable power
  78.           DB ZAP    - Deletes all records
  79.           DB CLONE  - Creates new empty file from existing DBF
  80.           DB SORT   - Sorts (and packs) a DBF via a key
  81.           DB EXPORT - Extracts structure and data to text file
  82.           DB IMPORT - Creates DBF and loads it
  83.           DBPASGEN  - generates a small pascal unit to access the DBF file
  84.  
  85.        Code Library status is centered around DBF_object and
  86.           KEYED_DBF_object, with lower level access in xbasstuf.  DBF read
  87.           rewrite, append, delete and various other functions.  I estimate
  88.           the system at 85% completion (what is there is 100%, but there
  89.           are missing logical pieces).
  90.  
  91.       I do not support xBase indexing (I have my own) primarily because
  92.           I don't have useful specifications for the files.  Same goes
  93.           for memos.
  94.  
  95.       I have not yet approached the screen entry aspect since I am happy
  96.           with Alpha 4, but would love to integrate a good PUBLIC DOMAIN
  97.           screen package.
  98.  
  99. 11. TP - My own IDE, replaces a number of batch files, uses TPC for
  100.       compilation and handles smart copying to and from library units.
  101.       You could easily substitute your own favorite text editor.
  102.  
  103. 12. DELAY - trivial.  Need to put delays into some compile batch files
  104.       to slow them enough to see errors.
  105.  
  106. 13. ENV - for addressing envelopes on a LJ 4, not generalized, but would
  107.       probably work for other PCL based printers, could be generalized.
  108.  
  109.  
  110. Overall structure:
  111.  
  112. 1. Most utility programs allow for '.cfg' files to process input parameters.
  113. If the program is named XXXX.exe, config files are merged together in the
  114. following order:
  115.   0.  compiled in default values
  116.   1.  c:\XXXX.cfg
  117.   2.  XXXX.cfg wherever the EXE file is
  118.   3.  XXXX.cfg in the current directory
  119.   4.  --------.--- named by EXTRA=--------.--- in one of the cfg files
  120.  
  121.      All of the cfg files are optional, assuming the compiled defaults
  122. do something useful.
  123.  
  124.      In these files are things like COMPRESSED=YES or LABEL='Test Program',
  125. and the last one encountered rules.  This allows utilities to take on
  126. locally useful defaults without messing up standard configuration.  For
  127. example, I tend to leave TLISTER with OUT= pointed to LPT1 so I can
  128. quickly print out source files.  If I don't want to waste paper on a
  129. particular project, I can add TLISTER.cfg on a development directory
  130. and place OUT=TEMP.TXT in it.  This makes TLISTER act differently here
  131. than anywhere else.
  132.  
  133.      I can easily have ENV (envelope printer) point to different address
  134. lists on my wife's directories than my own.